home *** CD-ROM | disk | FTP | other *** search
/ A Guide to Multimedia / Ask Me Multimedia - A Guide to Multimedia Featuring Super Show and Tell (Ask Me Multimedia) (1994).ISO / sst_lite.mst < prev    next >
Text File  |  1994-01-16  |  11KB  |  328 lines

  1. ''**************************************************************************
  2. ''*                       SST Setup Script...
  3. ''**************************************************************************
  4.  
  5. ''*** DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8.  
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11. DECLARE FUNCTION InstallCarousel LIB "MSCUISTF.dll" ( DestDir$ ) AS INTEGER 
  12.  
  13. ''Dialog ID's
  14. CONST WELCOME       = 100
  15. CONST ASKQUIT       = 200
  16. CONST DESTPATH      = 300
  17. CONST EXITFAILURE   = 400
  18. CONST EXITQUIT      = 600
  19. CONST EXITSUCCESS   = 700
  20. CONST EXITRUNTIME   = 750
  21. CONST OPTIONS       = 800
  22. CONST APPHELP       = 900
  23. CONST BADPATH       = 6400
  24. CONST SpaceNeeded& = 1500000
  25.  
  26. ''Bitmap ID
  27. CONST LOGO = 1
  28.  
  29. GLOBAL DEST$        ''Default destination directory.
  30. GLOBAL OPTCUR$      ''Option selection from option dialog.
  31. GLOBAL FreeSpace&
  32. GLOBAL WinDir$          '' Stores Windows Directory
  33. GLOBAL SrcDir$          '' Source Directory path
  34.  
  35. GLOBAL szInf$
  36.  
  37. DECLARE SUB Install
  38. DECLARE SUB UpdateINIfiles
  39. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  40. DECLARE FUNCTION CheckForVFW () AS INTEGER
  41.  
  42.  
  43. INIT:
  44.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  45.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  46.  
  47.     SetBitmap CUIDLL$, LOGO
  48.     SetTitle "SST LITE Setup"
  49.     Temp$ = "Version 1.1" + CHR$(13) + "Copyright (C) 1994, AskMe Multimedia, Inc."
  50.     SetAbout "Super Show & Tell", TEMP$
  51.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  52.     IF szInf$ = "" THEN
  53.     szInf$ = GetSymbolValue("STF_CWDDIR") + "SSTINF.INF"
  54.     END IF
  55.     ReadInfFile szInf$
  56.  
  57.     OPTCUR$ = "1"
  58.     DEST$ = "C:\SST_LITE"
  59. '$IFDEF DEBUG
  60.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  61.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  62.     IF IsDriveValid(WinDrive$) = 0 THEN
  63.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  64.     GOTO QUIT
  65.     END IF
  66. '$ENDIF ''DEBUG
  67.  
  68.  
  69. WELCOME:
  70.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  71.     IF sz$ = "CONTINUE" THEN
  72.     UIPop 1
  73.     ELSE
  74.     GOSUB ASKQUIT
  75.     GOTO WELCOME
  76.     END IF
  77.  
  78. ISWINDOWS31:
  79. ' Check Windows Version... Must be 3.1 or greater...
  80.     MajorVer% = GetWindowsMajorVersion()
  81.     MinorVer% = GetWindowsMinorVersion()
  82.  
  83.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  84.     i% = DoMsgBox("SST LITE requires Microsoft Windows version 3.10 or greater.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  85.     END
  86.     END IF
  87.  
  88. GETPATH:
  89.     SetSymbolValue "EditTextIn", DEST$
  90.     SetSymbolValue "EditFocus", "END"
  91. GETPATHL1:
  92.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  93.     DEST$ = GetSymbolValue("EditTextOut")
  94.  
  95.     IF sz$ = "CONTINUE" THEN
  96.     IF IsDirWritable(DEST$) = 0 THEN
  97.         GOSUB BADPATH
  98.         GOTO GETPATHL1
  99.     END IF
  100.     DESTDRIVE$ = MID$(DEST$, 1, 1)
  101.     FreeSpace& = GetFreeSpaceForDrive(DEST$) 
  102.     IF FreeSpace& < SpaceNeeded& THEN
  103.         GOSUB MORESPACE
  104.         GOTO GETPATHL1
  105.     ENDIF
  106.     UIPop 1
  107.     ELSEIF sz$ = "REACTIVATE" THEN
  108.     GOTO GETPATHL1
  109.     ELSEIF sz$ = "BACK" THEN
  110.     UIPop 1
  111.     GOTO WELCOME
  112.     ELSE
  113.     GOSUB ASKQUIT
  114.     GOTO GETPATH
  115.     END IF
  116.  
  117.     WinDir$ = GetWindowsDir()
  118.     Install
  119.  
  120.     CursorState% = ShowWaitCursor()
  121.     UpdateINIfiles
  122.     IF (CheckForVFW > 0 ) THEN
  123.     ' Need to Install VFW 1.1
  124.     IF CheckForVFW = 1 THEN
  125.           ' Old Version found
  126.           Temp$ = "An old runtime version of Video for Windows was found "
  127.           Temp$ = Temp$ + "on your machine.  "
  128.           Temp$ = Temp$ + CHR$(13) +CHR$(13)+ "Please install the Video for Windows Runtime "
  129.           Temp$ = Temp$ + "located in the \SST_LITE\VFW1-1 directory on this CD ROM."
  130.     ELSE
  131.           ' No Version Found
  132.           Temp$ = "Video for Windows 1.1 has not been located on your machine.  "
  133.           Temp$ = Temp$ + CHR$(13) +CHR$(13)+ "Please install the Video for Windows Runtime "
  134.           Temp$ = Temp$ + "located in the \SST_LITE\VFW1-1 directory on this CD ROM."
  135.  
  136.     END IF
  137.     
  138.     i% = DoMsgBox(Temp$, "Attention Installer!", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  139.     END IF
  140.     RestoreCUrsor CursorState%
  141.  CloseLogFile
  142.  
  143. QUIT:
  144.     ON ERROR GOTO ERRQUIT
  145.  
  146.     IF ERR = 0 THEN
  147.     dlg% = EXITRUNTIME
  148.     ELSEIF ERR = STFQUIT THEN
  149.     dlg% = EXITQUIT
  150.     ELSE
  151.     dlg% = EXITFAILURE
  152.     END IF
  153. QUITL1:
  154.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  155.     IF sz$ = "REACTIVATE" THEN
  156.     GOTO QUITL1
  157.     END IF
  158.     UIPop 1
  159.  
  160.     END
  161.  
  162. ERRQUIT:
  163.     i% = DoMsgBox("Setup sources were corrupted, call (612) 531-0603!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  164.     END
  165.  
  166.  
  167.  
  168. BADPATH:
  169.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  170.     IF sz$ = "REACTIVATE" THEN
  171.     GOTO BADPATH
  172.     END IF
  173.     UIPop 1
  174.     RETURN
  175.  
  176.  
  177. MORESPACE:
  178.     Temp$ = "SST LITE needs " + STR$(SpaceNeeded&) + " bytes to install." + CHR$(13)
  179.     Temp$ = Temp$ + "There is only " + STR$(FreeSpace&) +" bytes free."
  180.     i% = DoMsgBox( Temp$, "Not Enough Disk Space", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  181.     RETURN
  182.  
  183.  
  184. ASKQUIT:
  185.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  186.  
  187.     IF sz$ = "EXIT" THEN
  188.     UIPopAll
  189.     ERROR STFQUIT
  190.     ELSEIF sz$ = "REACTIVATE" THEN
  191.     GOTO ASKQUIT
  192.     ELSE
  193.     UIPop 1
  194.     END IF
  195.     RETURN
  196.  
  197.  
  198.  
  199. '**
  200. '** Purpose:
  201. '**     Builds the copy list and performs all installation operations.
  202. '** Arguments:
  203. '**     none.
  204. '** Returns:
  205. '**     none.
  206. '*************************************************************************
  207. SUB Install STATIC
  208.  
  209.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  210.  
  211.     CreateDir DEST$, cmoNone
  212.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  213.     WriteToLogFile "current working dir is "+szInf$
  214.     WriteToLogFile "Source Dir is " + SrcDir$
  215.  
  216.     AddSectionFilesToCopyList "Files", SrcDir$ + "SST_LITE\", DEST$
  217.     AddSectionFilesToCopyList "Icons", SrcDir$, DEST$
  218.     AutoDesk$ = GetIniKeyString( "WIN.INI", "AAPLAY Animation", "FullScreen" )
  219.     IF AutoDesk$ = "" THEN
  220.     AddSectionFilesToCopyList "AAPLAY", SrcDir$ + "SST_LITE\", WinDir$ + "SYSTEM"
  221.     WriteToLogFile "AAPLAY Animation not found in WIN.INI, copying AAPLAY.DLL"
  222.     ELSE
  223.     WriteToLogFile "Found AAPLAY Animation in WIN.INI - Checking for AAVGA.DLL and AAPLAY.DLL"
  224.     AAVGA$ = FindFileInTree("AAVGA.DLL", WinDir$)
  225.     WriteToLogFile "Search result for AAVGA.dll is |" + AAVGA$ + "|"
  226.     AAPLAY$ = FindFileInTree("AAPLAY.DLL", WinDir$)
  227.     WriteToLogFile "Search result for AAPLAY.dll is |" + AAPLAY$ + "|"
  228.     IF AAPLAY$ = "" THEN
  229.         ' Remove Section from INI file when AAPLAY.DLL not found.
  230.         i% = FRemoveIniSection ( "WIN.INI", "AAPLAY Animation", cmoForce)
  231.  
  232.         AddSectionFilesToCopyList "AAPLAY", SrcDir$ + "SST_LITE\", WinDir$ + "SYSTEM"
  233.         WriteToLogFile "Will copy AAPLAY.DLL"
  234.     ELSE
  235.         WriteToLogFile "Will not copy AAPLAY.DLL, found another version."
  236.     ENDIF
  237.     ENDIF
  238.  
  239.     CopyFilesInCopyList
  240.  
  241. END SUB
  242.  
  243. SUB UpdateINIfiles STATIC
  244. '' Update SST's INI file with installed paths.
  245.     INIFile$ = DEST$ + "\SST.INI"
  246.     CreateIniKeyValue INIFile$, "SST", "picturedir", SrcDir$ + "Content\Photos", cmoOverwrite
  247.     CreateIniKeyValue INIFile$, "SST", "picturetype", "1", cmoOverwrite
  248.     CreateIniKeyValue INIFile$, "SST", "sounddir", SrcDir$ + "Content\Sounds", cmoOverwrite
  249.     CreateIniKeyValue INIFile$, "SST", "soundtype", "1", cmoOverwrite
  250.     CreateIniKeyValue INIFile$, "SST", "carouseldir", SrcDir$ + "Samples", cmoOverwrite
  251.     CreateIniKeyValue INIFile$, "SST", "userselectdir", DEST$, cmoOverwrite
  252.     CreateIniKeyValue INIFile$, "SST", "altered", "0", cmoOverwrite
  253.     CreateIniKeyValue INIFile$, "SST", "moviedir", SrcDir$ + "Content\Movies", cmoOverwrite
  254.     CreateIniKeyValue INIFile$, "SST", "movietype", "2", cmoOverwrite
  255.  
  256. '' Add File Manager associations to WIN.INI file for Carousels.
  257. ''    BackupFile WinDir$ + "WIN.INI", "WIN.OLD"
  258. ''    INIFile$ = WinDir$ + "WIN.INI"
  259. ''    CreateIniKeyValue INIFile$, "Extensions", "sst", DEST$ + "\SST.EXE ^.sst", cmoOverwrite
  260. ''    CreateIniKeyValue INIFile$, "Extensions", "car", DEST$ + "\SST.EXE ^.car", cmoO